namespace GameLogic.Internal
{
    internal class Settings
    {
        private static Settings instance;

        private Settings()
        {
            this.GoldMineProductionTime = 10;
            this.BarrackProductionTime = 10;
            this.ResearchLabProductionTime = 10;
            this.CastleProduktionTime = 5;

            this.GoldCostsForMilitia = 10;

            this.GoldEarnedInMine = 10;

            this.ResearchPointsEarnedInLab = 10;

            this.WalkingTimeUnit = 1;
            this.MilitiaDamage = 1;
            this.MilitiaHealing = 1;

            this.PlayerTileHitPoints = 20;
            this.NeutralTileHitPoints = 5;
        }

        internal static Settings Instance
        {
            get
            {
                return instance ?? (instance = new Settings());
            }
        }

        internal float BarrackProductionTime { get; private set; }

        internal float CastleProduktionTime { get; private set; }

        internal int GoldCostsForMilitia { get; private set; }

        internal int GoldEarnedInMine { get; private set; }

        internal float GoldMineProductionTime { get; private set; }

        internal float ResearchLabProductionTime { get; private set; }

        internal int ResearchPointsEarnedInLab { get; private set; }

        internal int PlayerTileHitPoints { get; private set; }

        internal float WalkingTimeUnit { get; private set; }

        internal int MilitiaDamage { get; private set; }

        internal int NeutralTileHitPoints { get; private set; }

        internal int MilitiaHealing { get; private set; }
    }
}